package Task2;

import java.io.File;

public class fileDelete {
        //主要思路：获得需要被删除文件 or 文件夹的路径进行删除

        /**
         * 判断指定的文件或文件夹删除是否成功
         */
        public static boolean deleteAnyone(String FileName){
            //1.根据指定的文件名创建File对象
            File file = new File(FileName);
            //2.判断该文件能否被删除
            if ( !file.exists() ){
                System.out.println("文件"+FileName+"不存在，删除失败！" );
                return false;
            }else{
                //3. 判断需要删除的是文件还是文件夹
                //4. 如果需要被删除的是文件，进行文件的删除
                if ( file.isFile() ){
                    return deleteFile(FileName);
                //5. 如果被删除的是文件夹
                }else{
                    return deleteDir(FileName);
                }
            }
        }

        /**
            删除文件
         */
        public static boolean deleteFile(String fileName){
            //1. 根据文件名称new一个文件对象
            File file = new File(fileName);
            //2. 判断能否删除该文件
            if (file.exists() && file.isFile() ){ //要删除的文件存在且是文件
                if (file.delete()){
                    System.out.println("文件"+fileName+"删除成功！");
                    return true;
                }else{
                    System.out.println("文件"+fileName+"删除失败！");
                    return false;
                }
            }else{
                System.out.println("文件"+fileName+"不存在，删除失败！" );
                return false;
            }
        }

        /**
         * 删除指定的目录以及目录下的所有子文件
         */
        public static boolean deleteDir(String dirName){
//            if ( dirName.endsWith(File.separator) )//dirName不以分隔符结尾则自动添加分隔符
//                dirName = dirName + File.separator;
            //1.根据指定的文件名创建File对象
            File file = new File(dirName);
            //2.判断能否删除
            if ( !file.exists() || ( !file.isDirectory() ) ){
                System.out.println("目录删除失败"+dirName+"目录不存在！" );
                return false;
            }
            //3. 遍历文件夹中的内容
            File[] fileArrays = file.listFiles();
            for ( int i = 0 ; i < fileArrays.length ; i++ ){//将源文件下的所有文件逐个删除
                deleteAnyone(fileArrays[i].getAbsolutePath());
              //  fileArrays[i].delete();

            }
            //4.删除当前目录
            if ( file.delete() )
                System.out.println("目录"+dirName+"删除成功！" );
            return true;

        }


        public static void main(String[] args){
            //指定需要被删除文件夹的绝对路径
            String fileName = "/Users/minmengjie/Desktop/copy";
            deleteAnyone(fileName);

        }

    }

